public class test3 {//匿名内部类通常用于当作方法参数进行传递时候创建的个类的对象
    public static void main(String[] args) {
        dog dog=new dog("小ji",18);
        dog.eat();//只有一个抽象方法，且dog对象只需要调用一次，那就不用搞对象了，或者说不用实现子类了
        new animals()//等效于animals父类的子类对象，创建了一个animals父类的子类，这个子类可以不存
                // 在，这就是匿名内部类，就是创造，同时，子类实现一个对象
        {@Override
            public void eat() {
            System.out.println("鸡吃米");
            }
        }.eat();//相当于创建了子类对象,同时调用方法
        animals a=new animals(){@Override//必须是父类的
        public void eat() {
            System.out.println("狗吃屎");
        }};//子类对象赋值给父类
        a.eat();

        ppp(new swim() {
            @Override
            public void swim() {
                System.out.println("接口的实现类对象的方法");
            }
        });
    }
    public static void ppp(swim s){//需要一个接口的 实现类的 对象,那这个实现类对象可以匿名内部类搞一个
//方法体内可以调用s的方法，也即是接口定义的方法
        s.swim();
        System.out.println("告诉我你想干嘛");
        //匿名内部类通常用于接口或者抽象类只有一个抽象方法，应为长度短，并且简单方便，不然太多还是搞子类并且重写吧
    }
}
